package com.qianying.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qianying.entity.SysRolePermission;
import com.qianying.comment.CommonResult;

import java.util.Map;

/**
 * 角色权限关联 Service 接口
 * 继承 IService，可使用 MyBatis - Plus 提供的通用服务方法
 */
public interface SysRolePermissionService extends IService<SysRolePermission> {

    /**
     * 分页查询角色权限关联列表
     *
     * @param page                 分页对象
     * @param sysRolePermission    查询条件
     * @return 分页结果
     */
    CommonResult<?> getPage(com.baomidou.mybatisplus.extension.plugins.pagination.Page<SysRolePermission> page, SysRolePermission sysRolePermission);

    /**
     * 根据 ID 查询角色权限关联详情
     *
     * @param id 主键 ID
     * @return 角色权限关联详情
     */
    CommonResult<SysRolePermission> getById(Long id);

    /**
     * 新增角色权限关联
     *
     * @param sysRolePermission 角色权限关联信息（ID 需为空）
     * @return 操作结果
     */
    CommonResult<?> saveSysRolePermission(SysRolePermission sysRolePermission);

    /**
     * 更新角色权限关联
     *
     * @param sysRolePermission 角色权限关联信息（需包含 ID）
     * @return 操作结果
     */
    CommonResult<?> updateSysRolePermission(SysRolePermission sysRolePermission);

    /**
     * 根据 ID 删除角色权限关联
     *
     * @param id 主键 ID
     * @return 操作结果
     */
    CommonResult<?> removeById(Long id);

    /**
     * 查询所有角色权限关联（不分页）
     *
     * @return 角色权限关联列表
     */
    CommonResult<Map<String, Boolean>> getRolePermissionMap();
}